export default {
  // 开启命名空间
  namespaced: true,
  
  // state 数据
  state:()=>({
    //收货地址
    address: JSON.parse(uni.getStorageSync('address') || '{}'),
    token: uni.getStorageSync('token') || '', // 登录成功后的token字符串 ，|| 或 
    // token: '', // 登录成功后的token字符串 ，|| 或 
    userinfo: JSON.parse(uni.getStorageSync('userinfo') || '{}'), 
    addressFlag: uni.getStorageSync('addressFlag') || false
  }),
  
  // 方法
  mutations: {
    // 更新收货地址
    updateAddress(state,address){
      state.address = address,
      // 通过this.commit()方法，调佣m_user模块下的saveAddressToStorage方法将address对象持久化存储到本地
      this.commit('m_user/saveAddressToStorage')
    },
    
    // 定义将address持久化存储到本的mutations方法
    saveAddressToStorage(state){
      uni.setStorageSync('address',JSON.stringify(state.address))
    },
    
    // 更新用户的基本信息
    updateUserInfo(state,userinfo){
      state.userinfo = userinfo;
      // 通过this.commit()方法，调佣m_user模块下的saveUserInfoToStorage方法将 userinfo 对象持久化存储到本地
      this.commit('m_user/saveUserInfoToStorage')
    },
    //将userinfo 持久化储存到本地
    saveUserInfoToStorage(state){
      uni.setStorageSync('userinfo',JSON.stringify(state.userinfo))
    },
    // 更新Token字符串
    updateToken(state,token){
      state.token = token
       // 通过 this.commit() 方法，调用 m_user 模块下的 saveTokenToStorage 方法，将 token 字符串持久化存储到本地
      this.commit("m_user/saveTokenToStorage")
    },
    // 将token 字符串持久化存储到本地
    saveTokenToStorage(state){
      uni.setStorageSync('token',state.token)
    },
    // 更新roomNum字符串
    updateAddressFlag(state,addressFlag){
      state.addressFlag = addressFlag
       // 通过 this.commit() 方法，调用 m_user 模块下的 saveTokenToStorage 方法，将 token 字符串持久化存储到本地
      this.commit("m_user/saveAddressFlagToStorage")
    },
    // 将 roomNum 字符串持久化存储到本地
    saveAddressFlagToStorage(state){
      uni.setStorageSync('addressFlag',state.addressFlag)
    },
  },
  
  // 数据包装器
  getters:{
    // 收货详细地址的计算属性
    addstr(state){
      // if(!state.address.provinceName) return ''
      console.log("------------------------")
      return state.address.provinceName + state.address.cityName + state.address.countyName + state.address.detailInfo
    }
  },
}